package UT01.actividad6;

import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class ReadEmployee {
	
	private  ArrayList<Employee> listaEmpleados;
	private Map <Integer,String> dep;
	private Map <Integer,String> job;
	
	public Map<Integer,String> mapear(String[] lista){
		Map <Integer,String> mapa = new HashMap <Integer,String>();
		for(int i=0;i<lista.length;i++)
			mapa.put(i+1, lista[i]);
		
		return mapa;
	}
	
	public  void setListaEmpleados(String nombrefichero){
		ArrayList<Employee> listaEmpleados = new ArrayList<Employee>();
	
		Employee empleado = null; // defino variable empleado

		ObjectInputStream dataIS = null;
		try {
			dataIS = new ObjectInputStream(new FileInputStream(nombrefichero));

			empleado = (Employee) dataIS.readObject(); // leer una Empleado
			while (empleado != null) {
				listaEmpleados.add(empleado);
				
						        	        
				//System.out.println(empleado.toString());
						
				empleado = (Employee) dataIS.readObject(); // leer una Persona
			}
		} catch (EOFException eo) {
			System.out.println("Fin de fichero");
		} catch (FileNotFoundException e) {			
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		} catch (ClassNotFoundException e) {			
			e.printStackTrace();
		} finally {
			try {
				dataIS.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} // cerrar stream de salida
		
		this.listaEmpleados = listaEmpleados;
	}
	
	public  Employee buscar(int id){
		
		Employee e = null;
		for(Employee emp:listaEmpleados)
			if (emp.getEmp_no()==id)	e = emp;
		
		if (e!=null) 
			System.out.println(e.getName()+","+e.getLastname()+" dep: "+dep.get(e.getDept_number())+
					" fecha: " +e.getDate() +
					" job "+job.get(e.getJob()));
		else System.out.println("Empleado no encontrado");
		
		return e;
	}

	public static void main(String[] args) {
		
		
		
	}

	public ArrayList<Employee> getListaEmpleados() {
		return listaEmpleados;
	}

	public void setListaEmpleados(ArrayList<Employee> listaEmpleados) {
		this.listaEmpleados = listaEmpleados;
	}

	public Map<Integer, String> getDep() {
		return dep;
	}

	public void setDep(String[] lista) {
		Map <Integer,String> mapa = new HashMap <Integer,String>();
		for(int i=0;i<lista.length;i++)
			mapa.put(i+1, lista[i]);
		
		dep = mapa;
	}

	public Map<Integer, String> getJob() {
		return job;
	}

	public void setJob(String[] lista) {
		Map <Integer,String> mapa = new HashMap <Integer,String>();
		for(int i=0;i<lista.length;i++)
			mapa.put(i+1, lista[i]);
		
		job = mapa;
	}
	
	
}
